package belleza.relativa

class ImageController {

    def imageService

    def index() { }

    def fotoPrincipalPersona() {
        def personaInstance = Persona.findById(params.id)
        if (!personaInstance || !personaInstance.fotos) {
            response.sendError(404)
        }
        def foto = personaInstance?.fotoPrincipal
        response.contentType = foto?.fotoType
        response.contentLength = foto?.foto?.length
        response.outputStream.write(foto?.foto)
    }

    def uploadFoto() {
        def f = request.getFile('foto')
        params.fotoType = f.getContentType()

        def map = params.fotoPrincipal ? imageService.guardarFotoPrincipal(params) : imageService.agregarAFotos(params)

        if (map["creado"]) {

            println(params)

            if (params.otraFoto) {
                params.descripcion = ""
                redirect(controller: 'perfilPrivado', action: 'cargarFotos')
                return
            }
            redirect(controller: 'perfilPrivado', action: 'indexUsuario')
            return
        } else {
            render(view: "../perfilPrivado/cargaFotosUsuario", model: [foto: map["foto"]])
            return
        }
    }

    def foto() {
        def personaInstance = Persona.findById(params.personaId)
        def foto = Foto.findByPropietarioAndId(personaInstance, params.fotoId)
        if (!personaInstance || !foto)
            response.sendError(404)
        response.contentType = foto?.fotoType
        response.contentLength = foto?.foto?.length
        response.outputStream.write(foto?.foto)
    }
}